Wyobraźmy sobie tysiące turystów dziennie piętrzących się w kolejkach, aby obejrzeć najważniejsze wystawy Brukseli, Strasburga oraz udostępnione dla zwiedzających sale Parlamentu Europejskiego. Olbrzymia ilość rezerwacji, setki organizowanych wydarzeń oraz komunikacja wymagająca znajomości wszystkich urzędowych języków Unii Europejskiej – to główne wyzwania, jakim przyszło nam stawić czoła projektując platformę obsługi ruchu turystycznego dla Parlamentu Europejskiego!
Przedstawiciele Parlamentu przewidywali podwojenie ilości odwiedzających w przeciągu pierwszego roku funkcjonowania systemu – w związku z tym, wdrażając platformę na potrzeby aplikacji położyliśmy szczególny nacisk na kwestię skalowalności. Postanowiliśmy oprzeć architekturę rozwiązania na koncepcji microservices, na platformie funkcjonującej w oparciu o kontenery. Wykorzystaliśmy zbiór małych serwisów, oddzielnie zarządzanych z poziomu narzędzia orchestracji co – w porównaniu z systemami o architekturze monolitycznej – pozwoliło nam uzyskać nieograniczoną elastyczność, wydajność i łatwość skalowania rozwiązania.
Równolegle nad pracami nad architekturą platformy, prowadziliśmy prace nad stworzeniem samej aplikacji. Zadbaliśmy o automatyzację komunikacji projektując generator umożliwiający globalną wysyłkę potwierdzeń rezerwacji oraz biletów. To dzięki nim odwiedzający mają możliwość zaplanowania zwiedzania najważniejszych budynków i wystaw PE w Brukseli i Strasburgu. Stworzyliśmy platformę rezerwacji online dostępną we wszystkich urzędowych językach Unii Europejskiej! Zoptymalizowaliśmy zarządzanie zasobami, proces tworzenia i edycji wydarzeń pomagając personelowi PE w zarządzaniu przepływem odwiedzających oraz przepustowością poszczególnych, kluczowych lokalizacji. Wreszcie otoczyliśmy Parlament kompleksową opieką w postaci gwarancji niezawodnego i bezpiecznego środowiska hostingowego w Data Center Infomex, a także usług wsparcia i utrzymania systemu.
Technologie, z jakich korzystaliśmy projektując system:
- Docker
- Kubernetes
- MongoDB
- Java EE
- Spring Framework
- AngularJS
- ReactJS.